iT邦幫忙

2024 iThome 鐵人賽

DAY 1
0
Software Development

RISC-V 與處理器之架構學習及應用系列 第 1

[Day01] 從史至今的計算機結構

  • 分享至 

  • xImage
  •  

一、計算機結構

  1. 應用(Application)和物理(Physics)之間的距離,需要通過多層抽象層次來橋接,而這些抽象層次就是計算機架構的一部分。
  2. 而「磁羅盤」為例外,說明在某些情況下應用和物理之間的距離可以直接跨越,但多數情況仍需通過架構設計來實現。

https://ithelp.ithome.com.tw/upload/images/20240915/20156517PtHg9IVhR8.jpg

二、磁羅盤的工作原理

  1. 磁羅盤的測量原理

    • 磁羅盤(或磁力計)是用來測量地磁場方向的裝置。它通過感測環境中的磁場方向來判斷方位。這類設備在現代電子裝置(如手機、導航儀等)中被廣泛應用。
  2. Arduino應用與實驗設置

    • 透過Arduino板,可以連接不同的感測器(包括加速度計、陀螺儀和磁力計),從而讀取設備的運動和位置數據。
    • 實驗設置可能包括將磁羅盤固定在某個位置,並透過Arduino讀取磁場變化,這樣你可以觀察到如何通過感測器的數據來反映設備的方位變化。

三、Abstraction Layers(抽象層次)

層次 說明
Application 應用層,使用者直接互動的軟體層,如手機應用和桌面應用。
Algorithm 應用程式背後的計算邏輯和流程,用於解決具體問題。
Programming Language 程式語言,如 C、Python、Java。
Operating System/Virtual Machines 操作系統和虛擬機,提供應用程式與硬件之間的接口。
Instruction Set Architecture (ISA) 指令集架構,定義軟體和硬體之間的指令集。
Microarchitecture 微架構,實現指令集的具體硬件設計,如處理器內部結構。
Gates/Register-Transfer Level (RTL) 閘級/寄存器傳輸級,硬件描述層,用於設計邏輯閘電路和數據傳輸。
Circuits 電路層,包括電晶體和其他基本電子元件的組合。
Devices 設備層,如處理器、記憶體晶片等基本硬件元件。
Physics 物理層,最底層的技術層,包括半導體製造和電信號傳輸。

每一層都對上層提供支持和抽象,這使得應用程序可以有效地運行在不同的硬件上。這種層次化設計允許開發者專注於更高層的邏輯設計,而不必深入到底層硬件的具體實現細節。

四、EDSAC(Electronic Delay Storage Automatic Calculator) 簡介

  1. EDSAC 是世界上第一批以存儲程序方式運行的電子計算機之一,由劍橋大學在1949年建造。
  2. 這台計算機是為了幫助科學家和工程師解決計算密集型問題而設計的,如科學計算和模擬。
  3. 這些早期的計算機體積龐大,占用了整個房間,並使用了大量的真空管和電子元件。
  4. 計算速度相當慢,功耗高,而且維護成本昂貴。它們需要專門的冷卻系統和持續的維護。
  5. 與現代計算機相比,這些設備功能非常有限,只能執行簡單的計算任務。

五、Compatibility(兼容性)

  1. 因為軟件開發的成本很高。一旦軟件開發完成,確保其在不同硬件和系統上的兼容性就變得非常關鍵。
  2. 兼容性不僅僅是技術問題,更是商業問題。高成本的軟件開發要求它能夠在多種環境中運行,這樣才能最大化投資回報,避免因兼容性問題而產生的市場損失。

六、ISA, Instruction Set Architecture(指令集架構)

  1. ISA 是計算機架構的基礎,它定義了軟件與硬件之間的接口

    • 穩定的編程目標:開發者可以針對相同的指令集進行開發,而不用擔心硬件的變更。
    • 二進制兼容性:保證已有的軟件能在未來的硬件上運行,而無需重新開發或重編譯。
    • 技術的可預見性:幫助硬件和軟件的協同進化。
  2. von Neumann 規定了計算機如何執行指令並管理狀態

    • 指令的執行:每條指令都會修改某些狀態,每條指令明確指定:
      • 哪些狀態元素會被讀取(如內存、寄存器)。
      • 哪些狀態元素,包括PC,在執行後會被更新。
      • 如何計算這些更新狀態的新值。

七、Upheaval in Computer Design(計算機設計中的劇變)

  1. Dennard縮放終止:電壓縮放已經終止,這意味著供電電壓不再隨著晶體管尺寸的縮小而降低,限制了進一步的能效提升。
  2. 摩爾定律的終止:晶體管成本下降的速度放緩,甚至有停止的趨勢,這使得以前通過縮小晶體管來提升性能的做法不再有效。
  3. CMOS 的替代技術缺乏:目前,尚未出現能在短期內替代 CMOS 的競爭性技術。
  4. 不再有“免費午餐”:以前可以簡單依靠硬件的改進來提升性能,但現在,軟件開發者必須主動適應硬件變化,考慮並行系統和異質系統來提升應用的性能。
  5. 並行系統和異質系統:軟件開發者需要學習如何利用多核處理器和異構計算(如使用GPU、FPGA等專用硬件)來增強性能。

八、當前主流的目標系統

  1. Mobile(智慧型手機/平板電腦)
    • 市場主要由與Arm-ISA兼容的通用處理器主導,這些處理器通常集成於系統芯片(SoC)中。
    • 除了通用處理器,這些設備還配備大量專用加速器,負責處理無線電、影像、視頻、圖形、音頻、動作、定位、安全等功能,提升了設備的多媒體處理能力和用戶體驗。
  2. Warehouse-Scale Computers (WSCs)(倉庫級計算機)
    • 每個倉庫級計算機中心可能擁有數十萬個核心,支撐大規模數據處理和雲端服務。
    • 市場主要由與x86兼容的伺服器芯片主導,這些芯片被廣泛應用於數據中心和雲端服務。
    • 這些系統通常用於運行專用的應用程序和虛擬機器的托管,隨著工作負載的多樣化,GPU、FPGA及其他定製硬件的應用也越來越廣泛,用以加速特定任務的處理。
  3. Embedded Computing(嵌入式計算)
    • 嵌入式系統也大量應用於物聯網(IoT)設備,這些設備通常是小型、低功耗的系統。

九、RISC-V 的 ISA

  1. RISC-V 的特點
    • RISC-V 是一種免費、簡單、乾淨且可擴展的指令集架構。它源自於伯克利大學的 RISC-I/II,是最早的 RISC(精簡指令集計算機)實現之一。
    • 伯克利的研究機器如 SOAR 和 SPUR 被認為是 RISC-III/IV 的進一步發展。
    • 相比其他主流的指令集(如 x86 和 Arm),RISC-V 更為簡單且易於擴展,這使得它在教學和研究中非常有用,而其他的主流 ISA 太過複雜而不適合這些用途。
  2. RISC-V 的商業應用
    • RISC-V 已經在商業上取得成功,許多公司和組織正在採用這個架構。
    • RISC-V 基金會管理和推廣這個標準,其官網為 riscv.org。
    • RISC-V 現在已經得到了許多工具的上游支持(如 gcc、Linux、FreeBSD 等),這使得它更易於被開發者和企業採用。
  3. 主要支持者
    • Qualcomm:現已推動 RISC-V 的應用,加速其在商業領域的發展。
    • NVIDIA:在未來的所有 GPU 中都將使用 RISC-V。
    • Western Digital:將在所有未來產品中採用 RISC-V。
    • Samsung、Mediatek 和 Google 等公司也正在使用 RISC-V,顯示了它的廣泛應用和接受度。

十、rv32emu:NCKU 開發的 RISC-V 的 ISA 模擬器

https://ithelp.ithome.com.tw/upload/images/20240915/20156517dtbpQqDQ0h.jpg

  1. rv32emu 簡介
    • rv32emu 是一個模擬器,用於實現 32 位 RISC-V 處理器模型的指令集架構(ISA)。
  2. rv32emu 支持多種標準擴展
    • RV32M:整數乘除法的標準擴展。
    • RV32A:原子指令的標準擴展。
    • RV32C:壓縮指令的標準擴展。
    • RV32F:單精度浮點運算的標準擴展。
    • Zicsr:控制和狀態寄存器(CSR)的擴展。
    • Zifencei:指令提取隔離(Instruction-Fetch Fence)的擴展。
  3. 支持的功能
    • 支持 GDB 遠程調試:這使得開發者可以方便地進行代碼調試和錯誤排查。
    • 遊戲支持:該模擬器還可以用來運行經典 PC 遊戲,增加了學習的趣味性和實用性。
  4. 開發項目(Help Wanted)
    • 性能(Performance):提升模擬器的運行效率。
    • 兼容性(Compatibility):擴大支持的指令集和軟件環境。
    • 系統模擬(System Emulation):改進整個系統的模擬能力。

十一、srv32

  1. srv32 簡介
    • 簡單 RISC-V 處理器:srv32 是一個簡單的三級順序管線(3-stage in-order pipeline)處理器。
    • 支援 FreeRTOS:一種輕量級的實時操作系統,這使它適合嵌入式系統開發。
  2. 指令集
    • RV32IM 指令集:srv32 支持 RV32IM 指令集,包括基本的整數操作指令和乘法指令,這是 RISC-V 指令集中的一個常用子集。
  3. 架構測試
    • 通過 RV32IM 架構測試
  4. 功能特性
    • Trap Exception:srv32 能夠處理例外情況,這是處理器應對異常操作的基本功能之一。
    • Interrupt Handler:支持中斷處理,這對於實時操作系統和嵌入式應用至關重要。

十二、SoomRV

  1. SoomRV 是一個超標量(superscalar)亂序執行(out-of-order execution)的 RISC-V 核心。超標量處理器可以在同一個時鐘週期內執行多條指令,而亂序執行允許指令不按照原始程序的順序執行,以提升性能。
  2. 每週期執行多達 4 條指令。
  3. 支援 RISC-V 特權級(M/S/U 模式,虛擬記憶體):包括機器模式(M-mode)、監督模式(S-mode)、用戶模式(U-mode),以及虛擬記憶體管理,這些功能使其能夠支持更加複雜的操作系統,如 Linux。
  4. 能夠運行 RV32 架構的 Linux 系統,展示了其作為一個處理器核心的實用性和功能完整性。
  5. SoomRV 的性能達到 10.309 DMIPS/MHz,並且每個時鐘週期平均完成 2.729 條指令(IPC)。
    https://ithelp.ithome.com.tw/upload/images/20240915/20156517S9i3bxF6aI.jpg

十三、Chisel 模擬器

  1. Chisel Simulators
    • Chisel 是由伯克利大學開發的新的硬件描述語言,基於 Scala 語言。它提供了一種構建硬體的嵌入式語言。
    • 相關資料:Chipyard Documentation
  2. Chisel Design Flow
    https://ithelp.ithome.com.tw/upload/images/20240915/201565178Zhh8uW9eo.jpg
    • 編譯器生成適用於 FPGA 或 ASIC 的 Verilog 代碼。
    • FPGA 路徑:生成的 FPGA Verilog 可以使用 FPGA 工具進行模擬或實際部署在 FPGA 上進行驗證。
    • ASIC 路徑:生成的 ASIC Verilog 可以進一步使用 ASIC 工具進行真實芯片的佈局設計(GDS Layout)。

下一篇
[Day02] 現代處理器架構與效能最佳化技術
系列文
RISC-V 與處理器之架構學習及應用21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言